import request from "../utils/request"
import { jobTypeCacheManager } from "../utils/cache"

/**
 * 获取一级工作类别列表
 * 支持缓存机制
 */
export const getJobTypeTopListApi = async () => {
    // 先从缓存获取
    const cachedData = jobTypeCacheManager.getTopLevelData();
    if (cachedData) {
        return cachedData;
    }
    
    // 缓存不存在，请求接口
    const data = await request({
        method: 'GET',
        url: '/portal/recourse/job_type/get_top_list'
    });
    
    // 将数据存入缓存
    if (data) {
        jobTypeCacheManager.setTopLevelData(data);
    }
    
    return data;
}

/**
 * 根据父级ID获取子级工作类别列表
 * 支持缓存机制
 * @param {string} fatherId - 父级ID
 */
export const getJobTypeChildrenListApi = async (fatherId) => {
    if (!fatherId) {
        console.warn('fatherId 不能为空');
        return [];
    }
    
    // 先从缓存获取
    const cachedData = jobTypeCacheManager.getChildrenData(fatherId);
    if (cachedData) {
        return cachedData;
    }
    
    // 缓存不存在，请求接口
    const data = await request({
        method: 'GET',
        data: { fatherId },
        url: '/portal/recourse/job_type/get_children_list'
    });
    
    // 将数据存入缓存
    if (data) {
        jobTypeCacheManager.setChildrenData(fatherId, data);
    }
    
    return data || [];
}

/**
 * 清空工作类别缓存
 * 用于数据更新后重新获取
 */
export const clearJobTypeCache = () => {
    jobTypeCacheManager.clearAll();
}

/**
 * 获取缓存统计信息
 * 用于调试和监控
 */
export const getJobTypeCacheStats = () => {
    return jobTypeCacheManager.getCacheStats();
}